<template><div><h2 id="引言" tabindex="-1"><a class="header-anchor" href="#引言" aria-hidden="true">#</a> 引言</h2>
<p>知了Push是一个集成了<code v-pre>短信</code>、<code v-pre>邮件</code>、<code v-pre>企业微信</code>、<code v-pre>钉钉</code>、<code v-pre>飞书</code>、<code v-pre>WebHook</code>等实时消息推送平台。用户即可仅通过简单地API进行调用，也可通过<code v-pre>流程</code>将自己的<code v-pre>定时器</code>与消息模板绑定实现定时发送数据。</p>
<figure><img src="/assets/icon/icon.png" alt="知了Push" tabindex="0" loading="lazy"><figcaption>知了Push</figcaption></figure>
<h2 id="如何使用" tabindex="-1"><a class="header-anchor" href="#如何使用" aria-hidden="true">#</a> 如何使用？</h2>
<p>知了Push分为<code v-pre>公共通道</code>和<code v-pre>私有通道</code></p>
<h2 id="公共通道" tabindex="-1"><a class="header-anchor" href="#公共通道" aria-hidden="true">#</a> 公共通道</h2>
<p>目前知了Push提供的公共通道仅包括微信公众号，用户登录完成后可在</p>
<p><code v-pre>消息通道</code>  --- &gt; <code v-pre>公共通道</code> 页面获取自身的<code v-pre>Appkey</code></p>
<figure><img src="/assets/icon/appkey.png" alt="Appkey查看" tabindex="0" loading="lazy"><figcaption>Appkey查看</figcaption></figure>
<h2 id="调用方式" tabindex="-1"><a class="header-anchor" href="#调用方式" aria-hidden="true">#</a> 调用方式</h2>
<p>公共通道的调用方式分为两种，POST的HTTP请求;GET的HTTP请求。</p>
<ul>
<li>
<p>GET的HTTP请求</p>
<p>请求方法：GET</p>
<p>请求路径 :  <a href="http://localhost:8080/api/send/$%7BappKey%7D/com?title=$%7Btitle%7D&amp;content=$%7Bcontent%7D" target="_blank" rel="noopener noreferrer">http://localhost:8080/api/send/${appKey}/com?title=${title}&amp;content=${content}<ExternalLinkIcon/></a></p>
</li>
<li>
<p>POST的HTTP请求</p>
<p>请求方法：POST</p>
<p>请求路径 :  <a href="http://localhost:8080/api/send/$%7BappKey%7D/com" target="_blank" rel="noopener noreferrer">http://localhost:8080/api/send/${appKey}/com<ExternalLinkIcon/></a></p>
<p>请求体:</p>
<div class="language-text line-numbers-mode" data-ext="text"><pre v-pre class="language-text"><code>{
	"title": ${title}, ##标题
	"content": ${content} ##内容
}


</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li>
</ul>
<hr>
<p>参数说明：</p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必输</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>appKey</td>
<td>是</td>
<td>用户的个人的appkey，可在web端页面获取</td>
</tr>
<tr>
<td>title</td>
<td>是</td>
<td>标题</td>
</tr>
<tr>
<td>content</td>
<td>是</td>
<td>内容</td>
</tr>
</tbody>
</table>
<h2 id="私有通道" tabindex="-1"><a class="header-anchor" href="#私有通道" aria-hidden="true">#</a> 私有通道</h2>
<h3 id="什么是通道配置" tabindex="-1"><a class="header-anchor" href="#什么是通道配置" aria-hidden="true">#</a> 什么是通道配置？</h3>
<p><code v-pre>通道配置</code>即可理解为<code v-pre>短信</code>、<code v-pre>邮件</code>、<code v-pre>企业微信</code>、<code v-pre>钉钉</code>、<code v-pre>飞书</code>、<code v-pre>WebHook</code>等方式的账户信息配置。</p>
<p>为了能够让一个用户可以同时使用多个配置信息，我们将账户信息单独提取出来，以便用户能够更好的复用配置信息。</p>
<h3 id="什么是通道模板" tabindex="-1"><a class="header-anchor" href="#什么是通道模板" aria-hidden="true">#</a> 什么是通道模板？</h3>
<p><code v-pre>通道模板</code>即在相关的<code v-pre>通道配置</code>下的发送信息的模板配置，模板中支持 <code v-pre>占位符$</code>的使用，<code v-pre>通道模板</code>即用户发送信息的直接操作对象。</p>
<p>私有通道支持短信、邮件、企业微信、钉钉、飞书、WebHook等方式。</p>
<p>私有通道调用方式包括</p>
<ul>
<li><u>直接通过api调用</u></li>
<li><u>流程调用</u></li>
</ul>
<h3 id="_1、新增通道" tabindex="-1"><a class="header-anchor" href="#_1、新增通道" aria-hidden="true">#</a> 1、新增通道</h3>
<p><code v-pre>消息通道</code> --- &gt; <code v-pre>私有通道</code> --- &gt; <code v-pre>添加配置</code></p>
<figure><img src="/assets/icon/addconfig.jpg" alt="新增通道" tabindex="0" loading="lazy"><figcaption>新增通道</figcaption></figure>
<p>用户可在 <code v-pre>通道类型</code> 处选择 <code v-pre>配置类型</code></p>
<p>必填参数填充完成后，点击 <code v-pre>测试配置</code> 可对配置的正确性进行验证</p>
<figure><img src="/assets/icon/configtest.jpg" alt="配置测试" tabindex="0" loading="lazy"><figcaption>配置测试</figcaption></figure>
<p>测试配置成功后即可提交</p>
<h3 id="_2、新增模板" tabindex="-1"><a class="header-anchor" href="#_2、新增模板" aria-hidden="true">#</a> 2、新增模板</h3>
<p>点击相应<code v-pre>通道配置</code>下的<code v-pre>模板</code>即可进入到该配置下的模板列表</p>
<figure><img src="/assets/icon/configtemp.png" alt="配置模板" tabindex="0" loading="lazy"><figcaption>配置模板</figcaption></figure>
<figure><img src="/assets/icon/addtemp.jpg" alt="进入模板" tabindex="0" loading="lazy"><figcaption>进入模板</figcaption></figure>
<p>点击<code v-pre>添加模板</code>之后选择相应的通道模板类型。</p>
<p>如：<code v-pre>企业机器人</code>通道配置找吃的模板类型包括：<code v-pre>图文类型</code>、<code v-pre>图片类型</code>、<code v-pre>Markdown类型</code>、<code v-pre>普通文本类型</code></p>
<figure><img src="/assets/icon/temptest.jpg" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure>
<p>点击<code v-pre>测试模板</code>，成功后即可提交。</p>
<!--注！！！ 模板编码是唯一的，且添加成功后不可修改-->
<h3 id="占位符" tabindex="-1"><a class="header-anchor" href="#占位符" aria-hidden="true">#</a> 占位符</h3>
<p>文本会对<code v-pre>占位符$</code>自动提取，用户可在调用时设置变量</p>
<figure><img src="/assets/icon/$1.jpg" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure>
<p><img src="/assets/icon/$2.jpg" alt="" loading="lazy">
变量设置完成后再次点击 <code v-pre>测试模板</code>,发送的消息中占位符会被设置好的测试值替换
<img src="/assets/icon/$3.png" alt="" loading="lazy"></p>
<h2 id="通道模板调用方式" tabindex="-1"><a class="header-anchor" href="#通道模板调用方式" aria-hidden="true">#</a> 通道模板调用方式</h2>
<p>点击想要调用的模板中的<code v-pre>复制链接</code>,可直接将模板的api路径复制到粘贴板中。</p>
<figure><img src="/assets/icon/sendtemp.png" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure>
<p>模板的调用方式分为两种，POST的HTTP请求;GET的HTTP请求。</p>
<ul>
<li>
<p>GET的HTTP请求<br>
<code v-pre>直接把响应的请求路径放入浏览器地址中即可</code></p>
<p>请求方法：GET</p>
<p>请求路径 :  <a href="http://localhost:8080/api/send/$%7Bappkey%7D/exc/$%7BtempCode%7D" target="_blank" rel="noopener noreferrer">http://localhost:8080/api/send/${appkey}/exc/${tempCode}<ExternalLinkIcon/></a></p>
<div class="language-text line-numbers-mode" data-ext="text"><pre v-pre class="language-text"><code>若模板中存在`占位符$`,可在请求行中加入参数键值对,如

http://localhost:8080/api/send/${appKey}/exc/${tempCode}?test=123&amp;time=2023/2/2

上述请求会改变模板中占位符 ${test} 和${time}的值
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li>
<li>
<p>POST的HTTP请求</p>
<p>请求方法：POST</p>
<p>请求路径 :  <a href="http://localhost:8080/api/send/$%7Bappkey%7D/exc/$%7BtempCode%7D" target="_blank" rel="noopener noreferrer">http://localhost:8080/api/send/${appkey}/exc/${tempCode}<ExternalLinkIcon/></a></p>
<p>请求体:</p>
<div class="language-text line-numbers-mode" data-ext="text"><pre v-pre class="language-text"><code>{
##请求体默认为空
##若模板中存在`占位符$`,可在请求体中加入参数键值对,如
 "test":"123",
 "time":"2023/2/2"
}


</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>参数说明：</p>
<table>
<thead>
<tr>
<th>参数名称</th>
<th>是否必输</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>appKey</td>
<td>是</td>
<td>用户的个人的appkey，可在web端页面获取</td>
</tr>
<tr>
<td>tempCode</td>
<td>是</td>
<td>appkey用户下的模板编码,在模板列表中可获取该编码值</td>
</tr>
</tbody>
</table>
</li>
</ul>
<h2 id="进阶应用" tabindex="-1"><a class="header-anchor" href="#进阶应用" aria-hidden="true">#</a> 进阶应用</h2>
<h3 id="定时器有什么用" tabindex="-1"><a class="header-anchor" href="#定时器有什么用" aria-hidden="true">#</a> 定时器有什么用？</h3>
<p>定时器可通过<code v-pre>流程</code>与<code v-pre>通道模板</code>进行绑定，实现定时发送模板信息的功能。</p>
<!--注！！！ 定时器目前仅支持cron表达式 不会的同学快来学习一下吧--> 
<p><a href="https://www.bejson.com/othertools/cron/" target="_blank" rel="noopener noreferrer">https://www.bejson.com/othertools/cron/<ExternalLinkIcon/></a></p>
<p>目前为了减轻服务器的压力，也为了给更多的用户提供优质、快速的服务，故定时器的触发时间间隔不得小于1小时，若您对此有进一步的需求，请前往社区进行留言。</p>
<h3 id="流程是什么" tabindex="-1"><a class="header-anchor" href="#流程是什么" aria-hidden="true">#</a> 流程是什么？</h3>
<p>为了兼顾</p>
<ul>
<li>定时器与通道模板 一对多 的关联</li>
<li>定时器的复用</li>
<li>通道模板的复用</li>
</ul>
<p>我们引入了流程的定义，通过流程的配置，您可以将<code v-pre>一个定时器与多个模板进行绑定</code>，达到同时调用多个模板的效果。</p>
<figure><img src="/assets/icon/cron.jpg" alt="配置定时器" tabindex="0" loading="lazy"><figcaption>配置定时器</figcaption></figure>
<p>当流程绑定定时器后，会根据定时器的配置按时发送模板信息</p>
<figure><img src="/assets/icon/flowtemp.jpg" alt="配置模板" tabindex="0" loading="lazy"><figcaption>配置模板</figcaption></figure>
<figure><img src="/assets/icon/flow3.png" alt="提交流程" tabindex="0" loading="lazy"><figcaption>提交流程</figcaption></figure>
<p>为了减轻服务器的压力，我们对流程的数量做了限制，希望您在添加的时候放弃添加不必要的流程配置</p>
<h2 id="知了push的限制" tabindex="-1"><a class="header-anchor" href="#知了push的限制" aria-hidden="true">#</a> 知了Push的限制</h2>
<p>由于微信官方限制，后续随着用户量的上升，公共通道限制数量会相应减少</p>
<table>
<thead>
<tr>
<th>所有用户</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>资格获得方式</td>
<td>关注公众号获取</td>
</tr>
<tr>
<td>单 IP 每天 API 最大请求次数</td>
<td>10000（所有私有通道调用次数总和）10000(公共通道)</td>
</tr>
<tr>
<td>单 appkey 每天 API 最大请求次数</td>
<td>2000（所有私有通道调用次数总和）100(公共通道)</td>
</tr>
<tr>
<td>用户流程数量</td>
<td>4</td>
</tr>
<tr>
<td>用户定时器数量</td>
<td>4</td>
</tr>
<tr>
<td>定时器</td>
<td>定时器时间间隔不得少于30分钟</td>
</tr>
<tr>
<td>发送记录保留时间</td>
<td>15天</td>
</tr>
<tr>
<td>占位符</td>
<td>可在模板中使用${}实现动态变量替换</td>
</tr>
</tbody>
</table>
<h2 id="系统内置占位符" tabindex="-1"><a class="header-anchor" href="#系统内置占位符" aria-hidden="true">#</a> 系统内置占位符</h2>
<table>
<thead>
<tr>
<th>占位符名称</th>
<th>描述</th>
<th>示例</th>
</tr>
</thead>
<tbody>
<tr>
<td>now</td>
<td>当前时间,格式为 yyyy-MM-dd HH:mm:ss</td>
<td>2023-2-10 12:00:00</td>
</tr>
<tr>
<td>today</td>
<td>当前时间，格式为 yyyy-MM-dd</td>
<td>2023-2-10</td>
</tr>
<tr>
<td>serve</td>
<td>服务商信息</td>
<td>固定值： 知了Push</td>
</tr>
</tbody>
</table>
</div></template>


